package com.eedi.org.hospital.service;


import com.eedi.framework.common.enums.CommonStatusEnum;
import com.eedi.framework.common.pojo.PageResult;
import com.eedi.framework.common.validation.AddGroup;
import com.eedi.framework.common.validation.UpdateGroup;
import com.eedi.org.hospital.controller.vo.hosp.OrgHospitalPageReqVO;
import com.eedi.org.hospital.controller.vo.hosp.OrgHospitalSaveReqVO;
import com.eedi.org.hospital.dal.dataobject.OrgHospitalDO;
import org.springframework.validation.annotation.Validated;

import java.util.List;

/**
 * 医院 Service 接口
 *
 * @author 永聚长青源码
 */
public interface OrgHospitalService {

    /**
     * 创建医院
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    String createHospital(@Validated({AddGroup.class}) OrgHospitalSaveReqVO createReqVO);

    /**
     * 更新医院
     *
     * @param updateReqVO 更新信息
     */
    void updateHospital(@Validated({UpdateGroup.class}) OrgHospitalSaveReqVO updateReqVO);

    /**
     * 删除医院
     *
     * @param orgHospitalId 编号
     */
    void deleteHospital(String orgHospitalId);

    /**
     * 获得医院
     *
     * @param orgHospitalId 编号
     * @return 医院
     */
    OrgHospitalDO getHospital(String orgHospitalId);

    /**
     * 更新医院状态
     * @param orgHospId 医院id
     * @param status 状态
     */
    void updateHospitalStatus(String orgHospId, CommonStatusEnum status);
    /**
     * 获得医院列表
     *
     * @return 医院
     */
    List<OrgHospitalDO> listHospital();

    /**
     * 获得医院分页
     *
     * @param pageReqVO 分页查询
     * @return 医院分页
     */
    PageResult<OrgHospitalDO> getHospitalPage(OrgHospitalPageReqVO pageReqVO);

    /**
     * 根据id list 批量获取医院信息
     * @param orgHospitalIds
     * @return
     */
    List<OrgHospitalDO> listByIds(List<String> orgHospitalIds);


}
